package org.jeecg.glr.service;


import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.glr.entity.GlrRadio;
import org.jeecg.glr.entity.GlrRadioServer;
import org.jeecg.glr.entity.GlrRadioTask;

import java.util.List;

/**
 * @Description: 音柱服务器管理
 * @Author: jeecg-boot
 * @Date:   2020-02-11
 * @Version: V1.0
 */
public interface IGlrRadioServerService extends IService<GlrRadioServer> {

    /**
     * 根据属性名称和属性值取实体类
     * @param propertyName
     * @param value
     * @return
     */
    GlrRadioServer doGetByPropertyName(String propertyName, String value);

    /**
     * 雷拓使用取得雷拓可以使用的sessidId
     * @param entity
     * @return
     * @throws Exception
     */
    String getRattopSessionId(GlrRadioServer entity) throws Exception;

    /**
     * 如果产品是雷拓就更新服务器为雷拓第一个服务器
     * @param glrRadio
     * @return
     */
    GlrRadio updateGlrRadioServerCodeByCompanyCode(GlrRadio glrRadio);

    /**
     * 雷拓使用取得雷拓可以使用的sessidId
     * @param tbRadioServerId
     * @return
     * @throws Exception
     */
    String getRattopSessionId(String glrRadioServerId) throws Exception;

    /**
     * 雷拓使用从雷拓服务器取得当前雷拓设备的状态音量等信息更新到本地
     * @param ids
     * @throws Exception
     */
    void doUpdateRattopTerminalInfo(String ids) throws Exception;

    /**
     * 雷拓使用从雷拓服务器取得当前雷拓设备的状态音量等信息更新到本地
     * @param ids
     * @throws Exception
     */
    void doUpdateRattopTerminalInfo(GlrRadio domain) throws Exception ;

    /**
     * 音柱调整音量
     * @param glrRadio
     */
    void setRadioVol(GlrRadio glrRadio);

    /**
     * 音柱调整音量
     * @param glrRadioTask
     */
    void setRadioVol(GlrRadioTask glrRadioTask);

    /**
     * 根据文件名上传到雷拓服务器，返回雷拓上传后的文件id
     * @param fileName
     * @return
     */
    String getRattopFileId(String fileName);
    /**
     * 根据雷拓上传后的文件id，返回雷拓媒体id
     * @param rattopFileId
     * @return
     */
    Long getRattopMediaId(String rattopFileId);

    /**
     * 根据音柱实体更新音柱实体里的状态
     * @param domain
     */
    //void updateGlrRadioStatus(GlrRadio domain) throws Exception;

    /**
     * 根据音柱实体更新音柱实体里的状态
     * @param domain
     */
    void updateGlrRadioStatus(GlrRadio domain,GlrRadioServer glrRadioServer,String stJSessionID ) throws Exception;

    /**
     *雷拓任务 启用任务和停用任务
     * @param ids
     * @throws Exception
     */
    void doRattopTaskStartOrStop(GlrRadioTask domain,String status) throws Exception;

    /**
     *雷拓任务 立刻执行和立刻停止
     * @param ids
     * @throws Exception
     */
    void doRattopTaskRunningOrNot(GlrRadioTask domain,String status) throws Exception;

    /**
     * 删除雷拓任务
     * @param glrRadioTask
     */
    Boolean deleteRadioTask(GlrRadioTask glrRadioTask) throws Exception;

    /**
     * 删除雷拓上传的文件
     * @param Sid
     */
    void delRattopFileId(String Sid);

    /**
     * 删除雷拓上传的媒体
     * @param MLId
     */
    void delRattopMLId(Long MLId);

    /**
     * 取雷拓任务当前状态
     * @param ids
     * @return
     * @throws Exception
     */
    List<GlrRadioTask> doRattopTaskList(String ids) throws Exception;

    /**
     * 取雷拓音柱当前状态 暂时不用
     * @param ids
     * @return
     * @throws Exception
     */
    List<GlrRadioTask> getRattopTermState(String ids) throws Exception;

//
//    /**
//     * 雷拓使用从雷拓服务器取得当前雷拓设备的音量信息更新到本地
//     * @param ids
//     * @throws Exception
//     */
//    public void doUpdateRattopTerminalVol(String ids)  throws Exception;
//
//    /**
//     * 雷拓使用把音量更新到雷拓服务器
//     * @param ids
//     * @throws Exception
//     */
//    public void doSaveRattopVol(String ids, String tVol) throws Exception;
//
//    /**
//     * 雷拓使用把mp3文件更新到雷拓服务器
//     * @param ids
//     * @throws Exception
//     */
//    public void doUploadRattopFile(String ids) throws Exception;
//
//    /**
//     * 雷拓使用根据雷拓媒体ID删除雷拓服务器媒体文件
//     * @param ids
//     * @throws Exception
//     */
//    public void doRattopMLDelProg(String ids) throws Exception;
//
//    /**
//     * 雷拓使用根据上传后的雷拓mp3文件建立雷拓媒体ID
//     * @param ids
//     * @throws Exception
//     */
//    public void doRattopMLCreateNode(String ids) throws Exception;
//
//    /**
//     * 雷拓使用根据上传后的雷拓mp3文件建立雷拓媒体ID
//     * @param ids
//     * @throws Exception
//     */
//    public void doRattopFileSessionDestory(String ids) throws Exception;
//
//    /**
//     * 雷拓使用根据上传后的雷拓mp3文件建立雷拓媒体ID
//     * @param ids
//     * @throws Exception
//     */
//    public void doRattopFileSessionSetProg(String ids) throws Exception;
//
//    /**
//     * 雷拓使用根据上传后的雷拓mp3文件建立雷拓媒体ID
//     * @param ids
//     * @throws Exception
//     */
//    public void doRattopFileSessionSetStat(String ids, int itype) throws Exception;
//
//    /**
//     * 雷拓使用根据上传后的雷拓mp3文件建立雷拓媒体ID
//     * @param ids
//     * @throws Exception
//     */
//    public void doRattopFileSessionCreate(String ids) throws Exception;
//
//    /**
//     * 雷拓使用根据上传后的雷拓mp3文件建立雷拓媒体ID
//     * @param ids
//     * @throws Exception
//     */
//    public void doRattopTaskList(String ids) throws Exception;
//
//    /**
//     * 雷拓使用根据上传后的雷拓mp3文件建立雷拓媒体ID
//     * @param ids
//     * @throws Exception
//     */
//    public void doRattopTaskCreate(String ids) throws Exception;
//
//    /**
//     * 雷拓使用根据上传后的雷拓mp3文件建立雷拓媒体ID
//     * @param ids
//     * @throws Exception
//     */
//    public void doRattopTaskDelete(String ids) throws Exception;
//
//    /**
//     * 雷拓使用根据上传后的雷拓mp3文件建立雷拓媒体ID
//     * @param ids
//     * @throws Exception
//     */
//    public void doRattopTaskManualStart(String ids) throws Exception;
//
//    /**
//     * 雷拓使用根据上传后的雷拓mp3文件建立雷拓媒体ID
//     * @param ids
//     * @throws Exception
//     */
//    public void doRattopTaskManualStop(String ids) throws Exception;
//
//    /**
//     * 雷拓使用根据雷拓定时任务ID启动雷拓定时任务
//     * @param ids
//     * @throws Exception
//     */
//    public void doRattopTaskManualRun(String ids) throws Exception;

}




